package com.ruoyi.train.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.train.domain.StudentInformation;
import com.ruoyi.train.domain.TrainClass;
import com.ruoyi.train.domain.Vo.CertApplicationStudentVo;
import com.ruoyi.train.domain.Vo.ExamPassStudentVo;
import com.ruoyi.train.domain.Vo.StudentInformationVo;

/**
 * 学员信息Service接口
 * 
 * @author wusihao
 * @date 2023-03-21
 */
public interface IStudentInformationService extends IService<StudentInformation>
{
    /**
     * 查询学员信息
     * 
     * @param id 学员信息主键
     * @return 学员信息
     */
    public StudentInformationVo selectStudentInformationById(Long id);

    /**
     * 查询学员信息列表
     * 
     * @param studentInformation 学员信息
     * @return 学员信息集合
     */
    public List<StudentInformation> selectStudentInformationList(StudentInformation studentInformation);

    /**
     * 新增学员信息
     * 
     * @param studentInformation 学员信息
     * @return 结果
     */
    public int insertStudentInformation(StudentInformation studentInformation);

    /**
     * 修改学员信息
     * 
     * @param studentInformation 学员信息
     * @return 结果
     */
    public int updateStudentInformation(StudentInformation studentInformation);

    /**
     * 批量删除学员信息
     * 
     * @param ids 需要删除的学员信息主键集合
     * @return 结果
     */
    public int deleteStudentInformationByIds(Long[] ids);


    List<StudentInformation> selectStudentByClassId(Long classId);


    int submitClassInfo(TrainClass classInfo);

    // 通过考试申请表id查询学生信息
    List<StudentInformationVo> selectStudentVoByApplicationId(Long examApplicationId);

    String importData(List<StudentInformationVo> studentInformationVoList, String operName);

    // 添加实操考试结论
    int addoperatingScore(StudentInformationVo studentInformationVo);

    // 通过办证申请表id的到学生信息
    List<CertApplicationStudentVo> selectStudentInformationByCertApplicationId(Long certApplicationId);

    // 通过考试合格证明表id的到学生信息
    List<ExamPassStudentVo> selectStudentInformationByExamPassCertificateId(Long examPassCertificateId);

    // 是否确实通过考试申请
    int confirmTrainisPassAll(Long classId);

    // 导入学生信息
    String importStudentInformation(List<StudentInformation> studentInformationList,
                                     String operName, Long classId, Long trainId);

//    选中学生通过考试合格证明提交
    int selectStudentExamCertificate(Long[] ids);

    // 通过考试合格证明表查到所有学生信息(peixunjigou1)
    List<?> selectAllStudentInformationByExamPassCertificateId(Long examPassCertificateId);

    // 选中学生id提交办证申请表
    int selectStudentSubmitCert(Long[] ids);

    // 通过办证申请表id查询所有的学生信息
    List<?> selectAllStudentInformationByCertApplicationId(Long certApplicationId);
}
